package com.dragon.modules.yuegou.entity.product;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.product.CoupApplyCheckedStatus;
import com.dragon.modules.yuegou.enums.product.CoupApplyGrantType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * 商品券申请表实体类<br>
 * 对应的表为：pro_coup_apply<br>
 * 
 * @author pbuilder generated
 * @date 2021-05-11 16:55:17
 * @company sgy
 * @version 2.0
 */
@TableName("pro_coup_apply")
@ApiModel(description = "商品券申请表")
public class CoupApplyEntity {

    /** ID */
	@ApiModelProperty("ID")
	protected String id;

    /** 券ID */
	@ApiModelProperty("券ID")
	protected String coupTemplateId;

    /** [枚举]发放形式：0-二维码-QR */
	@ApiModelProperty("[枚举]发放形式：0-二维码-QR")
	protected CoupApplyGrantType grantType;

    /** 商户id */
	@ApiModelProperty("商户id")
	protected String merchantId;

    /** 申请数量 */
	@ApiModelProperty("申请数量")
	protected Integer applyQuantity;

    /** 审核数量 */
	@ApiModelProperty("审核数量")
	protected Integer checkQuantity;

    /** 发放数量 */
	@ApiModelProperty("发放数量")
	protected Integer releasedQuantity;

    /** 申请有效日期开始 */
	@ApiModelProperty("申请有效日期开始")
	protected LocalDateTime startTime;

    /** 申请有效日期结束 */
	@ApiModelProperty("申请有效日期结束")
	protected LocalDateTime endTime;

    /** [枚举]审核状态：0-待提交-READY、1-待审核-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED */
	@ApiModelProperty("[枚举]审核状态：0-待提交-READY、1-待审核-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED")
	protected CoupApplyCheckedStatus checkedStatus;

    /** 审核有效日期开始 */
	@ApiModelProperty("审核有效日期开始")
	protected LocalDateTime checkStartTime;

    /** 审核有效日期结束 */
	@ApiModelProperty("审核有效日期结束")
	protected LocalDateTime checkEndTime;

    /** 版本 */
	@ApiModelProperty("版本")
	protected Integer version;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 创建人 */
	@ApiModelProperty("创建人")
	protected String createdBy;

    /** 是否删除（1：已删除，0：未删除） */
	@ApiModelProperty("是否删除（1：已删除，0：未删除）")
	protected Boolean del;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

	/**
	 * 构造一个空商品券申请表实体对象
	 */
	public CoupApplyEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个商品券申请表实体对象
	 * 
	 * @param other 其它对象
	 */
	public CoupApplyEntity(CoupApplyEntity other){
		super();
     	this.id = other.id;
     	this.coupTemplateId = other.coupTemplateId;
     	this.grantType = other.grantType;
     	this.merchantId = other.merchantId;
     	this.applyQuantity = other.applyQuantity;
     	this.checkQuantity = other.checkQuantity;
     	this.releasedQuantity = other.releasedQuantity;
     	this.startTime = other.startTime;
     	this.endTime = other.endTime;
     	this.checkedStatus = other.checkedStatus;
     	this.checkStartTime = other.checkStartTime;
     	this.checkEndTime = other.checkEndTime;
     	this.version = other.version;
     	this.createdTime = other.createdTime;
     	this.createdBy = other.createdBy;
     	this.del = other.del;
     	this.delTime = other.delTime;
	}


	/**
	 * 获取ID
	 * 
	 * @return id ID
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置ID
	 * 
	 * @param id ID
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取券ID
	 * 
	 * @return coupTemplateId 券ID
	 */
	public String getCoupTemplateId() {
		return coupTemplateId;
	}
  	
	/**
	 * 设置券ID
	 * 
	 * @param coupTemplateId 券ID
	 */
	public void setCoupTemplateId(String coupTemplateId) {
		this.coupTemplateId = coupTemplateId;
	}

	/**
	 * 获取[枚举]发放形式：0-二维码-QR
	 * 
	 * @return grantType [枚举]发放形式：0-二维码-QR
	 */
	public CoupApplyGrantType getGrantType() {
		return grantType;
	}
  	
	/**
	 * 设置[枚举]发放形式：0-二维码-QR
	 * 
	 * @param grantType [枚举]发放形式：0-二维码-QR
	 */
	public void setGrantType(CoupApplyGrantType grantType) {
		this.grantType = grantType;
	}

	/**
	 * 获取商户id
	 * 
	 * @return merchantId 商户id
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置商户id
	 * 
	 * @param merchantId 商户id
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取申请数量
	 * 
	 * @return applyQuantity 申请数量
	 */
	public Integer getApplyQuantity() {
		return applyQuantity;
	}
  	
	/**
	 * 设置申请数量
	 * 
	 * @param applyQuantity 申请数量
	 */
	public void setApplyQuantity(Integer applyQuantity) {
		this.applyQuantity = applyQuantity;
	}

	/**
	 * 获取审核数量
	 * 
	 * @return checkQuantity 审核数量
	 */
	public Integer getCheckQuantity() {
		return checkQuantity;
	}
  	
	/**
	 * 设置审核数量
	 * 
	 * @param checkQuantity 审核数量
	 */
	public void setCheckQuantity(Integer checkQuantity) {
		this.checkQuantity = checkQuantity;
	}

	/**
	 * 获取发放数量
	 * 
	 * @return releasedQuantity 发放数量
	 */
	public Integer getReleasedQuantity() {
		return releasedQuantity;
	}
  	
	/**
	 * 设置发放数量
	 * 
	 * @param releasedQuantity 发放数量
	 */
	public void setReleasedQuantity(Integer releasedQuantity) {
		this.releasedQuantity = releasedQuantity;
	}

	/**
	 * 获取申请有效日期开始
	 * 
	 * @return startTime 申请有效日期开始
	 */
	public LocalDateTime getStartTime() {
		return startTime;
	}
  	
	/**
	 * 设置申请有效日期开始
	 * 
	 * @param startTime 申请有效日期开始
	 */
	public void setStartTime(LocalDateTime startTime) {
		this.startTime = startTime;
	}

	/**
	 * 获取申请有效日期结束
	 * 
	 * @return endTime 申请有效日期结束
	 */
	public LocalDateTime getEndTime() {
		return endTime;
	}
  	
	/**
	 * 设置申请有效日期结束
	 * 
	 * @param endTime 申请有效日期结束
	 */
	public void setEndTime(LocalDateTime endTime) {
		this.endTime = endTime;
	}

	/**
	 * 获取[枚举]审核状态：0-未审核-READY、1-审核中-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED
	 * 
	 * @return checkedStatus [枚举]审核状态：0-未审核-READY、1-审核中-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED
	 */
	public CoupApplyCheckedStatus getCheckedStatus() {
		return checkedStatus;
	}
  	
	/**
	 * 设置[枚举]审核状态：0-未审核-READY、1-审核中-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED
	 * 
	 * @param checkedStatus [枚举]审核状态：0-未审核-READY、1-审核中-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED
	 */
	public void setCheckedStatus(CoupApplyCheckedStatus checkedStatus) {
		this.checkedStatus = checkedStatus;
	}

	/**
	 * 获取审核有效日期开始
	 * 
	 * @return checkStartTime 审核有效日期开始
	 */
	public LocalDateTime getCheckStartTime() {
		return checkStartTime;
	}
  	
	/**
	 * 设置审核有效日期开始
	 * 
	 * @param checkStartTime 审核有效日期开始
	 */
	public void setCheckStartTime(LocalDateTime checkStartTime) {
		this.checkStartTime = checkStartTime;
	}

	/**
	 * 获取审核有效日期结束
	 * 
	 * @return checkEndTime 审核有效日期结束
	 */
	public LocalDateTime getCheckEndTime() {
		return checkEndTime;
	}
  	
	/**
	 * 设置审核有效日期结束
	 * 
	 * @param checkEndTime 审核有效日期结束
	 */
	public void setCheckEndTime(LocalDateTime checkEndTime) {
		this.checkEndTime = checkEndTime;
	}

	/**
	 * 获取版本
	 * 
	 * @return version 版本
	 */
	public Integer getVersion() {
		return version;
	}
  	
	/**
	 * 设置版本
	 * 
	 * @param version 版本
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取 创建人
	 *
	 * @return createdBy 创建人
	 */
	public String getCreatedBy() {
		return this.createdBy;
	}

	/**
	 * 设置 创建人
	 *
	 * @param createdBy 创建人
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取是否删除（1：已删除，0：未删除）
	 * 
	 * @return del 是否删除（1：已删除，0：未删除）
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置是否删除（1：已删除，0：未删除）
	 * 
	 * @param del 是否删除（1：已删除，0：未删除）
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

    public String toString() {
		return new StringBuilder().append("CoupApplyEntity{").
			append("id=").append(id).
			append(",coupTemplateId=").append(coupTemplateId).
			append(",grantType=").append(grantType).
			append(",merchantId=").append(merchantId).
			append(",applyQuantity=").append(applyQuantity).
			append(",checkQuantity=").append(checkQuantity).
			append(",releasedQuantity=").append(releasedQuantity).
			append(",startTime=").append(startTime).
			append(",endTime=").append(endTime).
			append(",checkedStatus=").append(checkedStatus).
			append(",checkStartTime=").append(checkStartTime).
			append(",checkEndTime=").append(checkEndTime).
			append(",version=").append(version).
			append(",createdTime=").append(createdTime).
			append(",createdBy=").append(createdBy).
			append(",del=").append(del).
			append(",delTime=").append(delTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public CoupApplyEntity copy() {
		return new CoupApplyEntity(this);
	}

    /** ID */
	public static final String COL_ID = "id";

    /** 券ID */
	public static final String COL_COUP_TEMPLATE_ID = "coup_template_id";

    /** [枚举]发放形式：0-二维码-QR */
	public static final String COL_GRANT_TYPE = "grant_type";

    /** 商户id */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 申请数量 */
	public static final String COL_APPLY_QUANTITY = "apply_quantity";

    /** 审核数量 */
	public static final String COL_CHECK_QUANTITY = "check_quantity";

    /** 发放数量 */
	public static final String COL_RELEASED_QUANTITY = "released_quantity";

    /** 申请有效日期开始 */
	public static final String COL_START_TIME = "start_time";

    /** 申请有效日期结束 */
	public static final String COL_END_TIME = "end_time";

    /** [枚举]审核状态：0-未审核-READY、1-审核中-CHECKING、2-已通过-PASSED、3-审核未通过-UNPASSED */
	public static final String COL_CHECKED_STATUS = "checked_status";

    /** 审核有效日期开始 */
	public static final String COL_CHECK_START_TIME = "check_start_time";

    /** 审核有效日期结束 */
	public static final String COL_CHECK_END_TIME = "check_end_time";

    /** 版本 */
	public static final String COL_VERSION = "version";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 创建人 */
	public static final String COL_CREATED_BY = "created_by";

    /** 是否删除（1：已删除，0：未删除） */
	public static final String COL_DEL = "del";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";
}
